The M-%
(calc-percent) command takes a percentage value, say
5.4, and converts it to an equivalent actual number. For example,
5.4 M-% enters 0.054 on the stack. (That's the
<META> or <ESC> key combined with %.)
Actually, M-% creates a formula of the form
‘5.4%’. You
can enter ‘5.4%’ yourself during algebraic entry.
The ‘%’
operator simply means, “the preceding value divided by
100.” The ‘%’ operator has very high precedence,
so that ‘1+8%’
is interpreted as ‘1+(8%)’, not as
‘(1+8)%’. (The
‘%’ operator
is just a postfix notation for the percent function,
just like ‘20!’ is the notation for
‘fact(20)’, or
twenty-factorial.)
The formula ‘5.4%’ would normally evaluate immediately to 0.054, but the M-% command suppresses evaluation as it puts the formula onto the stack. However, the next Calc command that uses the formula ‘5.4%’ will evaluate it as its first step. The net effect is that you get to look at ‘5.4%’ on the stack, but Calc commands see it as ‘0.054’, which is what they expect.
In particular, ‘5.4%’ and ‘0.054’ are suitable values for the rate arguments of the various financial functions, but the number ‘5.4’ is probably not suitable—it represents a rate of 540 percent!
The key sequence M-% * effectively means “percent-of.” For example, 68 <RET> 25 M-% * computes 17, which is 25% of 68 (and also 68% of 25, which comes out to the same thing).
The c
% (calc-convert-percent) command converts the
value on the top of the stack from numeric to percentage form.
For example, if 0.08 is on the stack, c % converts it
to ‘8%’. The
quantity is the same, it's just represented differently.
(Contrast this with M-%, which would convert this
number to ‘0.08%’.) The = key is a
convenient way to convert a formula like
‘8%’ back to
numeric form, 0.08.
To compute what percentage one quantity is of another quantity, use / c %. For example, 17 <RET> 68 / c % displays ‘25%’.
The b %
(calc-percent-change) [relch] command
calculates the percentage change from one number to another. For
example, 40 <RET> 50 b % produces the answer
‘25%’, since
50 is 25% larger than 40. A negative result represents a
decrease: 50 <RET> 40 b % produces
‘-20%’, since
40 is 20% smaller than 50. (The answers are different in
magnitude because, in the first case, we're increasing by 25% of
40, but in the second case, we're decreasing by 20% of 50.) The
effect of 40 <RET> 50 b % is to compute
‘(50-40)/40’,
converting the answer to percentage form as if by c
%.